home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 21
/
Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso
/
Aminet
/
mus
/
midi
/
MusicXRexxMacs.lha
/
macros
/
LOGICALSELECT.mxe
< prev
next >
Wrap
Text File
|
1997-02-04
|
3KB
|
177 lines
/* Logical Selector */
/* Fills the gap left by logical edit module */
/* Allows Logical Selection of clock position in bar */
/* Set up for 8 beat bars or less at the moment */
/* © Dick Doyle */
options results
MXCOLUMN 1
MXRADIO "Notes,Poly AT,Control Change,Program Change,Channel AT,Pitch Bend,Play Sequence,Tempo Change,Mute Sequence,Solo Sequence"
MXRADIO "Marked Area,All"
MXCOLUMN 2
MXSLIDER 'Start Clock,0,1535,0'
MXSLIDER 'End Clock,0,1535,1535'
MXSLIDER "Channel Select,1,16,1"
MXLABEL ''
MXLABEL 'BEATS IN CLOCKS'
MXLABEL '1= 000- 191/2= 192- 383'
MXLABEL '3= 384- 575/4= 576- 767'
MXLABEL '5= 768- 959/6= 960-1151'
MXLABEL '7=1152-1343/8=1344-1535'
MXREQUEST 'LOGICAL SELECTOR,SELECT'
if result == 0 then exit
MXVALUE 1
i = Result
if i = 0 then Etype = 'NOTE'
if i = 1 then Etype = 'PAT'
if i = 2 then Etype = 'CTL'
if i = 3 then Etype = 'PGM'
if i = 4 then Etype = 'CAT'
if i = 5 then Etype = 'PBEN'
if i = 6 then Etype = 'PSEQ'
if i = 7 then Etype = 'TEMP'
if i = 8 then Etype = 'MSEQ'
if i = 9 then Etype = 'SSEQ'
MXVALUE 3
x = result
MXVALUE 4
y = result
MXVALUE 5
Chanum = result
MXPOINTER "sleepy"
MXVALUE 2
if result == 0 then BEGINSCAN 'selected'
else BEGINSCAN 'all'
if result ~= 0 then do forever
NEXTEVENT
if result == 0 then break
if EVENT.TYPE == Etype then do
if Etype = "NOTE" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
if event.channel == chanum - 1 then
REPLEVENT
MXOPTION "SELECTED"
end
end
if EVENT.TYPE == Etype then do
if Etype = "PAT" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
if event.channel == chanum - 1 then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "CTL" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
if event.channel == chanum - 1 then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "PGM" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
if event.channel == chanum - 1 then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "CAT" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
if event.channel == chanum - 1 then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "PBEN" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
if event.channel == chanum - 1 then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "PSEQ" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "TEMP" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "MSEQ" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
REPLEVENT
MXOPTION "SELECTED"
END
END
if EVENT.TYPE == Etype then do
if Etype = "SSEQ" then do
if event.start.clocks >= x then
if event.start.clocks <= y then
REPLEVENT
MXOPTION "SELECTED"
END
END
end
ENDSCAN
MXPOINTER "normal"
exit